package com.sheng.leetcode.year2025.month09.day07;

import org.junit.Test;

import java.util.Arrays;

/**
 * @author by ls
 * @date 2025/9/15
 * <p>
 * 1304. 和为零的 N 个不同整数<p>
 * <p>
 * 给你一个整数 n，请你返回 任意 一个由 n 个 各不相同 的整数组成的数组，并且这 n 个数相加和为 0 。<p>
 * <p>
 * 示例 1：<p>
 * 输入：n = 5<p>
 * 输出：[-7,-1,1,3,4]<p>
 * 解释：这些数组也是正确的 [-5,-1,1,2,3]，[-3,-1,2,-2,4]。<p>
 * <p>
 * 示例 2：<p>
 * 输入：n = 3<p>
 * 输出：[-1,0,1]<p>
 * <p>
 * 示例 3：<p>
 * 输入：n = 1<p>
 * 输出：[0]<p>
 * <p>
 * 提示：<p>
 * 1 <= n <= 1000<p>
 */
public class LeetCode1304 {

    @Test
    public void test() {
//        int n = 5;
//        int n = 3;
//        int n = 1;
        int n = 4;
        System.out.println(Arrays.toString(new Solution().sumZero(n)));
    }
}

class Solution {
    public int[] sumZero(int n) {
        int[] res = new int[n];
        if (n % 2 != 0) {
            res[0] = 0;
        }
        for (int i = n % 2 != 0 ? 1 : 0; i < n; i += 2) {
            res[i] = i + 1;
            res[i + 1] = -(i + 1);
        }
        return res;
    }
}
